package annotation;

import java.util.ArrayList;
import java.util.List;

// 函数式接口（只有一个抽象方法）
@FunctionalInterface
interface MyFunction {
    void execute();

    // 可以有默认方法
    default void defaultMethod() {}
}

public class BuiltInAnnotations {
    // 抑制未检查类型转换警告
    @SuppressWarnings({"unchecked", "rawtypes"})
    public void unsafeOperation() {
        List list = new ArrayList();
        list.add("string");
        List<String> stringList = list; // 未检查的转换
    }

    // 可变参数安全声明
    @SafeVarargs
    public final <T> void safeVarargsMethod(T... elements) {
        for (T e : elements) {
            System.out.println(e);
        }
    }

    // 覆盖Object类的toString方法
    @Override
    public String toString() {
        return "BuiltInAnnotations实例";
    }

    // 标记为过时方法
    @Deprecated(since = "1.0", forRemoval = true)
    public void oldMethod() {
        System.out.println("这是一个即将被移除的方法");
    }
}

